#ifndef __LINK_H__
#define __LINK_H__

#include "Element_data_link.h"
// 结点的结构体
typedef struct Node
{
  Element_data data;
  struct Node *next;
} Node;
// 头结点的结构体
typedef struct Link_list
{
  Node *next;
} Link_list;

// 单链表的创建
Link_list *init_link_list();

// 单链表的插入
void insert_node(Link_list *list, Element_data data, int index);

// 单链表的删除
void delete_node(Link_list *list, int id);

// 单链表的查找
Node *find_node_id(Link_list *list, int id);
Node *find_node_name(Link_list *list, char *name);

// 单链表的遍历
void print_link_list(Link_list *list);

// 单链表的判空
int IsEmpty_Sql_List(Link_list *list);

// 单链表的清空
void clear_link_list(Link_list *list);

// 单链表的合并
Link_list *merge_link_lists(Link_list *list1, Link_list *list2);

// 单链表的销毁
void free_link_list(Link_list *list);

// 单链表的尾插入
void tail_insert(Link_list *list, Element_data data);
// 链表的尾删
void tail_dele(Link_list *list);
#endif
